package fuse.LaCollaFS.Metadades;

import fuse.FuseDirEnt;
import fuse.LaCollaFS.LaCollaFS;
import junit.framework.TestCase;

public class testFitxer extends TestCase {
	
	MetaDades apim;

	public testFitxer() {
		Fitxer fit = new Fitxer("exemple.txt");

	
	}
	public void testEsFitxer(){
		Fitxer fit = new Fitxer("exemple.txt");
		assertTrue(fit.esFitxer());
		assertTrue(!fit.esDirectori());
		
	}
	
	public void testAnterior(){
		Fitxer fit = new Fitxer("exemple.txt");
		fit.setVersions(1);
		Fitxer fit2 = new Fitxer("exemplee.txt");
		
		fit2.AfegirAnterior(fit);
		System.out.println("fit "+fit.getVersion()+" fit2 "+fit2.getVersion());
		assertEquals(fit2.getVersion(),fit.getVersion()+1);
		assertEquals(fit2.getVersion(),2);
		assertEquals(fit2.Anterior().getNom(),fit.getNom());
	}
	public void testEliminar(){
		Fitxer fit = new Fitxer("exempl.txt");
		fit.setVersions(1);
		
		Fitxer fit2 = new Fitxer("exemple.txt");
		fit2.setVersions(1);
		fit2.AfegirAnterior(fit);
		Directori dir = new Directori("");
		dir.AfegirFill(fit2);
		assertTrue(!dir.Buit());
		FuseDirEnt[] l = dir.Llistarfills();
		System.out.println(l[2].name);
		assertEquals(l[2].name,"exemple.txt@2");
		fit2.Eliminar();
		l = dir.Llistarfills();
		System.out.println(l[2].name);
		assertEquals(l[2].name,"exempl.txt@1");
	}
	public void testPurge(){
		Fitxer fit = new Fitxer("exempl.txt");
		Fitxer fit2 = new Fitxer("exemple.txt");
		
		fit2.AfegirAnterior(fit);
		Directori dir = new Directori("");
		dir.AfegirFill(fit2);
		
		fit2.Purge();
		assertTrue(dir.Buit());
	}
	public void testIdObject(){
		Fitxer fit = new Fitxer("exempl.txt");
		
		String id = "fgsdgsdf gsdg dsf gds gsd";
		fit.setIdObjecte(id);
		assertEquals(fit.getIdObjecte(),id);
		
		
	}
	
	public void testCopy(){
		Fitxer fit = new Fitxer("exemple.txt");
		Fitxer fit2 = new Fitxer("asfdasdfasdf");
		fit.setIdObjecte("asdfasdfasdfas");
		fit2 = fit.copy();
		
		assertEquals(fit.getNom(),fit2.getNom());
		assertEquals(fit.getIdObjecte(),fit2.getIdObjecte());
		assertEquals(fit.getVersion(),fit2.getVersion());
		assertEquals(fit.getStat().atime,fit2.getStat().atime);
		assertEquals(fit.getStat().blocks,fit2.getStat().blocks);
		assertEquals(fit.getStat().gid,fit2.getStat().gid);
		assertEquals(fit.getStat().mode,fit2.getStat().mode);
		assertEquals(fit.getStat().nlink,fit2.getStat().nlink);
		assertEquals(fit.getStat().size,fit2.getStat().size);
		
		
	}
	
}
